This invention relates to the field of information technology, and more particularly to the field of integration processes.
The advent of computer applications made many business processes much faster and more efficient; however, the proliferation of different computer applications that use different data structures, communication protocols, languages and platforms has led to great complexity in the information technology infrastructure of the typical business enterprise. Different business processes within the typical enterprise may use completely different computer applications, each computer application being developed and optimized for the particular business process, rather than for the enterprise as a whole. For example, a business may have a particular computer application for tracking accounts payable and a completely different one for keeping track of customer contacts. In fact, even the same business process may use more than one computer application, such as when an enterprise keeps a centralized customer contact database, but employees keep their own contact information, such as in a personal information manager.
While specialized computer applications offer the advantages of custom-tailored solutions, the proliferation leads to inefficiencies, such as repetitive entry and handling of the same data many times throughout the enterprise, or the failure of the enterprise to capitalize on data that is associated with one process when the enterprise executes another process that could benefit from that data. For example, if the accounts payable process is separated from the supply chain and ordering process, the enterprise may accept and fill orders from a customer whose credit history would have caused the enterprise to decline the order. Many other examples can be provided where an enterprise would benefit from consistent access to all of its data across varied computer applications.
A number of companies have recognized and addressed the need for integration of data across different applications in the business enterprise. Thus, enterprise application integration, or EAI, is a valuable field of computer application development. As computer applications increase in complexity and number, enterprise application integration efforts encounter many challenges, ranging from the need to handle different protocols, the need to address ever-increasing volumes of data and numbers of transactions, and an ever-increasing appetite for faster integration of data. Conventional approaches to EAI have involved forming and executing data integration jobs. A typical data integration job may include extracting data from one or more sources of data, transforming the data (which might include merging it with data from another source), and loading the data into a target, this extraction, transformation and loading being sometimes referred to as ETL. Various approaches to EAI have been taken, including least-common-denominator approaches, atomic approaches, and bridge-type approaches.
While a number of useful approaches have been devised for designing and deploying specific integration processes, there remains a need for tools to enable migration of the integration processes themselves, once designed, among different technology platforms.